2.1.1 Eureka

准备工作

  • 在生产环境下,我们往往会为每个应用配置一个host,使用host而非IP进行访问。为了更加贴近生产环境,以及后文Docker章节的讲解,我们首先配置一下Host
  1. 127.0.0.1 discovery

代码示例

  • 创建一个Maven工程(microservice-discovery-eureka),并在pom.xml中加入如下内容:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <artifactId>microservice-discovery-eureka</artifactId>
  6. <packaging>jar</packaging>
  7. <parent>
  8. <groupId>com.itmuch.cloud</groupId>
  9. <artifactId>spring-cloud-microservice-study</artifactId>
  10. <version>0.0.1-SNAPSHOT</version>
  11. </parent>
  12. <dependencies>
  13. <dependency>
  14. <groupId>org.springframework.cloud</groupId>
  15. <artifactId>spring-cloud-starter-eureka-server</artifactId>
  16. </dependency>
  17. </dependencies>
  18. </project>
  1. /**
  2. * 使用Eureka做服务发现。
  3. * @author eacdy
  4. */
  5. @SpringBootApplication
  6. @EnableEurekaServer
  7. public class EurekaApplication {
  8. public static void main(String[] args) {
  9. SpringApplication.run(EurekaApplication.class, args);
  10. }
  11. }
  • 在默认情况下,Eureka会将自己也作为客户端尝试注册,所以在单机模式下,我们需要禁止该行为,只需要在application.yml中如下配置:
  1. server:
  2. port: 8761 # 指定该Eureka实例的端口
  3. eureka:
  4. instance:
  5. hostname: discovery # 指定该Eureka实例的主机名
  6. client:
  7. registerWithEureka: false
  8. fetchRegistry: false
  9. serviceUrl:
  10. defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
  11. # 参考文档:http://projects.spring.io/spring-cloud/docs/1.0.3/spring-cloud.html#_standalone_mode
  12. # 参考文档:http://my.oschina.net/buwei/blog/618756
  • 启动工程后,访问:http://discovery:8761/ ,如下图。我们会发现此时还没有服务注册到Eureka上面。

Eureka启动界面

代码地址(任选其一)

http://git.oschina.net/itmuch/spring-cloud-study/tree/master/microservice-discovery-eureka
https://github.com/eacdy/spring-cloud-study/tree/master/microservice-discovery-eureka